"use strict";
// 布尔类型  声明一个布尔类型的变量, 且初始值为 true
let b = true;
let b2; //声明一个布尔类型的变量
b2 = true;
b2 = false;
// b = 20;
// b2 = 'abc';//X
// 数字类型  let a; a = 200;
let n; //声明一个数字类型的变量 n
n = 100;
n = 0b1010;
// n = '123';
let n2 = 100;
// 字符串类型
let s; //声明一个数字类型的变量 s
s = 'abc';
s = "xxx";
s = `sef`;
// s = 123;
// s = true;
// s = {}
// 字面量类型
// let x: 100;//声明一个类型为 100 的变量
// x = 100;
// x = 'abc';
// let gender: '男' | '女' | "保密";
// // gender = 100;
// gender = '保密';
// let PORT:3000 = 3000;
// any 任意. 尽量不要用
// let a:any; //声明一个类型为 any 的变量
// a = 100;
// a = 'xxx';
// a = {};
// a = [];
// a = function(){};
// never 决不
function test() {
    // throw new Error('xxx');
    while (true) {
    }
}
// void 空类型
// let v: void;//声明一个空类型的变量
// v = undefined;
function t() {
}
//object 对象类型
let o;
o = { a: 100, b: 200 };
o = [1, 2, 3, 4];
o = () => { };
//数组类型  数组元素类型必须一致
let arr = [1, 2, 3, 4];
// arr[4] = 10;
// arr[5] = 'abc';
// arr.push(123);
// arr.push(true);
//元组
let tu = ['张三', 29];
tu[0] = '李四';
let stu = [
    ['思怡', 18],
    ['旭鹏', 25],
];
//枚举类型  Object.create   Object.defineProperty
var Gender;
(function (Gender) {
    Gender["Female"] = "\u5973";
    Gender["Male"] = "\u7537";
    Gender["Secret"] = "\u4FDD\u5BC6";
})(Gender || (Gender = {}));
let obj = {
    name: '张三',
    gender: Gender.Male
};
//联合类型
// let u: string | number;
// u = 'abc';
// u = 123;
// u = true;
// let arr2 = [1,2,3];
// let res = arr2.find(item => item == 2);
//类型断言  获取页面的一个元素
// let div = document.querySelector('div') as HTMLDivElement;
// let div = document.querySelector('div');
// (<HTMLDivElement>div).append();
//类型推断
// let div = document.querySelector('div');
let n3 = 200;
// n3 = 'abc';
let n4; //any 类型
n4 = 100;
n4 = 'abc';
